﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using EveMarkets.UserControls;
using EveMarketsDAO;
using CoreEveMarkets;

namespace EveMarkets.Views
{
	/// <summary>
	/// Logique d'interaction pour Markets.xaml
	/// </summary>
	public partial class Markets : Page
	{
		readonly UserControls.UcChoixItem _choixItem = new UcChoixItem();

		public Markets()
		{
			InitializeComponent();

			ucChoixSystemeMarket.ListRegion = ContexteDAO.ChargeListeDesRegions().ToList();
			
			dataGridSellOrder.DataContext = ContexteDAO.ContexteDonnees;
			dataGridBuyOrder.DataContext = ContexteDAO.ContexteDonnees.MarketsCentral;

			canvasNomItem.Children.Add(_choixItem);
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void btnRechercher_Click(object sender, RoutedEventArgs e)
		{
			#region Test sur les entrées.
			bool probRegion = false;
			bool probNomItem = false;

			// Test sur les positions des régions, systèmes et stations.
			if (ucChoixSystemeMarket.cBoxRegion.SelectedIndex == -1 || String.IsNullOrEmpty(ucChoixSystemeMarket.cBoxRegion.SelectedItem.ToString()))
			{
				ucChoixSystemeMarket.imgWrongRegion.Visibility = Visibility.Visible;
				probRegion = true;
			}

			// Test sur le nom de l'objet (il faut qu'il y est un nom avant de lancer la recherche.
			if (String.IsNullOrEmpty(_choixItem.txtBoxNomItem.Text))
			{
				_choixItem.imgWrong.Visibility = Visibility.Visible;
				probNomItem = true;
			}

			if (probNomItem || probRegion)
				return; 
			#endregion

			// Récupération du nom de Station et Systeme, en mettant String.Empty s'ils sont à null.
			string nomStation = ucChoixSystemeMarket.cBoxStation.SelectedValue == null
			                    	? String.Empty
									: ucChoixSystemeMarket.cBoxStation.SelectedValue.ToString();
			string nomSysteme = ucChoixSystemeMarket.cBoxSystem.SelectedValue == null
			                    	? String.Empty
									: ucChoixSystemeMarket.cBoxSystem.SelectedValue.ToString();

			string nomRegion = ucChoixSystemeMarket.cBoxRegion.SelectedValue.ToString();


			ConsultationMarket consulte = new ConsultationMarket(nomRegion, nomSysteme, nomStation, _choixItem.txtBoxNomItem.Text);

			// Affichage des SellOrders
			dataGridSellOrder.ItemsSource = _choixItem.txtBoxNomItem.Text.Equals("Tout") ? consulte.AfficherPrixSellOrdersTout() : consulte.AfficherPrixSellOrders();

			// Affichage des BuyOrders
			dataGridBuyOrder.ItemsSource = _choixItem.txtBoxNomItem.Text.Equals("Tout") ? consulte.AfficherPrixBuyOrdersTout() : consulte.AfficherPrixBuyOrders();
		}

	}
}
